#ifndef __SHARE_MEM_H
#define __SHARE_MEM_H

#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

typedef enum{
    HES_UINT16 = 0,
    HES_UINT32,
}REGTYPE;

typedef struct {
    uint32_t map_addr;
    size_t   size;
    int      i_prop;
    uint8_t  *mem_base;
}MemInfo;

typedef struct{
    int         mem_fd;
    MemInfo     mem_base_tab[1];
}MEMCFG;

extern MEMCFG mapCfg;
extern void unmapMem(MEMCFG *pMapCfg);
extern int shareMemInit(MEMCFG *pMapCfg);
extern int setDataParam(int addr,uint16_t data);
extern int setBit(int  addr,int  dataType,int  bitIndex,int value);
extern uint16_t *getDataAddrByAddr(int addr);
#endif